// index.js
// 获取应用实例
const app = getApp()

// 引入http.js
const http = require('../../utils/http')

Page({
  data: {
    motto: '点击进入笔记本',
    userInfo: {},
    hasUserInfo: false,
    canIUse: wx.canIUse('button.open-type.getUserInfo'),
    canIUseGetUserProfile: false,
    canIUseOpenData: wx.canIUse('open-data.type.userAvatarUrl') && wx.canIUse('open-data.type.userNickName'), // 如需尝试获取用户信息可改为false
    errorMsg: ""
  },
  // 事件处理函数
  bindViewTap() {
    wx.navigateTo({
      url: '../logs/logs'
    })
  },
  jumpToNotebook() {
    // http.get({
    //     url: "/index/test",
    //     data: data,
    //     successCallback(res) {
    //         // console.log("成功了", res);
    //     },
    //     errorCallback(err) {
    //         console.log("失败了", err)
    //     }
    // })

    // 全局变量中pk_user为空，表示未获得系统的用户主键，再次尝试获取
    if (app.globalData.pk_user == null) {
      http.get({
        url: "index/getUserOpenId",
        data: {
          js_code: app.globalData.js_code
        },
        successCallback: (res) => {
          if(res.data.pk_user != null) {
            app.globalData.pk_user = res.data.pk_user
            wx.navigateTo({
              url: '../notebook/notebook'
            })
          } else {
            this.setData({
              errorMsg: "登陆失败，请联系管理员"
            })
          }
        },
        errorCallback: (err) => {
          console.log(err);
          this.setData({
            errorMsg: "登陆失败，请联系管理员"
          })
        }
      })
    } else {
      wx.navigateTo({
        url: '../notebook/notebook'
      })
    }
  },
  onLoad() {
    // 由于 wx.login 是异步操作，而全局变量 pk_user 的赋值在它的success方法里，所以在打开index页面的时候， wx.login 可能没有执行完
    // 因此使用这种方法，通过计时器判断是否获取到 pk_user
    if (app.globalData.pk_user == null) {
      let countTime = 0;
      const interval = setInterval(() => {
        if (countTime > 5) {
          this.setData({
            errorMsg: "登陆失败！"
          });
          clearInterval(interval);
        }
        // console.log("获取app的globalData", app.globalData.pk_user)
        if (app.globalData.pk_user != null) {
          clearInterval(interval);
        }
        countTime++;
      }, 300)
    }
    if (wx.getUserProfile) {
      this.setData({
        canIUseGetUserProfile: true
      })
    }
  },
  getUserProfile(e) {
    // 推荐使用wx.getUserProfile获取用户信息，开发者每次通过该接口获取用户个人信息均需用户确认，开发者妥善保管用户快速填写的头像昵称，避免重复弹窗
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log("用户信息", res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },
  getUserInfo(e) {
    // 不推荐使用getUserInfo获取用户信息，预计自2021年4月13日起，getUserInfo将不再弹出弹窗，并直接返回匿名的用户个人信息
    console.log(e)
    this.setData({
      userInfo: e.detail.userInfo,
      hasUserInfo: true
    })
  }
})